package org.KeyCrafter.obj.type;

import java.util.Iterator;

public interface ZSetType extends Encoded{
    // 节点
    interface Node {
        double score();
        Object member();
    }
    // 添加分数和对象
    // 对象存在更新分数，不存在直接创建
    // 添加返回1，修改返回0
    int add(double score, Object obj);
    // 给对象增加/减少分数
    // 对象不存在直接创建
    // 添加对象的新分数
    double incr(Object obj, double increment);
    // 取出分数
    Double getScore(Object obj);
    // 成员个数
    int length();
    Node[] getNodesByRange(int start, int rangeLen, boolean revers);
    // 迭代器
    Iterator<Node> iterator();
}
